<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        class Stack{
            #items = [];//#是ES13的写法，代表着私有属性。是不能通过 实例对象.#items 访问到的。使用用起来没有什么不同，下面的代码也一样要加#

            push(data){
                this.#items.push(data);
            }

            pop(){
                this.#items.pop();
            }

            peek(){
                // return this.#items[this.#items.length-1];//这样写很麻烦，我们可以用js中数组的at方法
                return this.#items.at(-1);//at是2022年的新方法，所以如果不支持就用上面那行的写法
            }

            size(){
                return this.#items.length;
            }

            isEmpty(){
                return this.#items.length===0;
            }

            clear(){
                this.#items = [];
            }

            toString(){
                return this.#items.join('');
            }
        }
        let stack = new Stack();
        // stack.#items;//这行会爆红
    </script>
</body>
</html>